﻿@{
    ViewBag.Title = "UserManage";
    Layout = "~/Views/Shared/_LayoutAdmin.cshtml";
}
@model List<CMS.Models.Role>
@{
    List<SelectListItem> listRole = new List<SelectListItem>();
    listRole.Add(new SelectListItem { Selected = true, Text = "Tất cả", Value = "-1" });
    foreach (var item in Model)
    {
        listRole.Add(new SelectListItem { Selected = false, Text = item.RoleName, Value = item.RoleId.ToString() });
    }
}

<h1 class="page-header">Quản lý user</h1>
<img id="loading" src="~/Images/waiting-wheel-300x300.gif" />

<h2 class="sub-header">Danh sách các user của hệ thống
</h2>
Chọn Role: @Html.DropDownList("DanhsachRole", listRole, new { onchange = "GetListUser()" })
<div class="table-responsive" id="roleTable">
</div>

<div id="updateForm" style="display: none">
    <form class="form-horizontal" role="form">
        <div id="formUpdateContent" class="form-group has-feedback">
            @Html.Hidden("idUpdateRole")
            <label for="inputNameRoleUpdate" class="col-sm-2 control-label">Quyền</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="inputUpdateRole" placeholder="Tên quyền không được để rỗng" value="" />
            </div>
        </div>
    </form>
    <div style="text-align: right">
        <button id="editButton" type="button" class="btn btn-default">
            Cập nhật
        </button>
    </div>
</div>

<script type="text/javascript">
    $(function () {
        $("#editButton").click(function () {
            if ($("#inputUpdateRole").val() == "") {
                CreateNotify("alert-danger", "Chú ý!", "Bạn không thể để rỗng tên quyền");
                $("#formUpdateContent").addClass("has-error");
            }
            else
                $.post("/Admin/PostUpdateRole", { "roleId": $("#idUpdateRole").val(), "roleName": $("#inputUpdateRole").val() },
                    function (data) {
                        var str = "";
                        if (data == -1)
                            CreateNotify("alert-warning", "Chú ý!", "Tên quyền này đã tồn tại. Vui lòng kiểm tra lại");
                        else if (data == 0)
                            CreateNotify("alert-danger", "Chú ý!", "Cập nhật thất bại. Vui lòng kiểm tra lại");
                        else if (data == 1) {
                            CreateNotify("alert-success", "Thành công!", "Đã cập nhật quyền thành công");
                            GetListRole();
                        }
                        else {
                            CreateNotify("alert-danger", "Lỗi nghiêm trọng!", "Xin lỗi. Chúng tôi chưa nhận ra lỗi này. Vui lòng liên hệ tác giả để giải quyết");
                        }
                        $("#updateForm").dialog("close");
                    });
        });

        GetListUser();
    });
    function GetListUser() {
        var idRole = $("#DanhsachRole").val();
        $.post("/Admin/GetListUser", { roleId: idRole },
            function (data) {
                var jSonData = data;
                var str = "<table class='table table-striped'>";
                str += "<thead><tr><th>#</th><th>User Name</th><th>Full Name</th><th>Birthday</th><th>Department</th><th>StudentID</th><th>Roles</th><th>Thao tác</th></tr></thead>";
                str += "<tbody>";

                for (var i = 0; i < jSonData.length; i++) {
                    str += "<tr><td>" + (i + 1) + "</td>";
                    str += "<td>" + jSonData[i].UserName + "</td>";
                    str += "<td>" + jSonData[i].FullName + "</td>";
                    str += "<td>" + jSonData[i].BirthDay + "</td>";
                    str += "<td>" + jSonData[i].Department + "</td>";
                    str += "<td>" + jSonData[i].StudentId + "</td>";
                    str += "<td>" + jSonData[i].Roles + "</td>";
                    str += "<td><button onClick='onDelete(" + jSonData[i].UserId + ")'  type='button' class='btn btn-link'>Xóa</button>";
                    str += "<button onClick='onDelete(" + jSonData[i].UserId + ")'  type='button' class='btn btn-link'>Gán role</button>";
                    str += "</td></tr>";
                }
                str += "</tbody></table>";
                $("#roleTable").html(str);
            });
    }

    function onDelete(id) {
        $('<div></div>').appendTo('body').html('<div><h6>Bạn có thực muốn xóa user này?</h6></div>').dialog({
            modal: true,
            title: 'Chú ý',
            zIndex: 10000,
            autoOpen: true,
            width: 'auto',
            resizable: false,
            buttons: {
                "Đồng ý": function () {
                    $.post("/Admin/DeleteUser", { userId: id },
                                                       function (data) {
                                                           if (data == 0)
                                                               CreateNotify("alert-danger", "Thất bại!", "Không thể xóa user này");
                                                           else {
                                                               CreateNotify("alert-success", "Thành công!", "Đã xóa user thành công");
                                                               GetListUser();
                                                           }
                                                       });
                    $(this).dialog("close");
                },
                "Bỏ qua": function () {
                    $(this).dialog("close");
                }
            },
            close: function (event, ui) {
                $(this).remove();
            }
        });
    }

    function onUpdate(id) {
        $("#formUpdateContent").removeClass("has-error");
        $.post("/Admin/GetUpdateRole", { roleId: id },
            function (data) {
                if (data == null)
                    CreateNotify("alert-danger", "Thất bại!", "Không thể cập nhật quyền lúc này");
                else {
                    $("#idUpdateRole").val(data.RoleId);
                    $("#inputUpdateRole").val(data.RoleName);
                    $("#updateForm").visible = true;
                    $("#updateForm").dialog({
                        autoOpen: true,
                        width: 400,
                        resizable: false,
                        title: 'Cập nhật',
                        modal: true,
                        draggable: false,
                        close: function (event, ui) {
                            //$(this).remove();
                            $("#updateForm").visible = false;
                        }
                    });
                    GetListRole();
                }
            });
    }
</script>
